
#ifndef __LPCDS_CLIPBOARD_H__
#define __LPCDS_CLIPBOARD_H__

typedef enum {
    ClipBoard_None = 0, 
    ClipBoard_Open,
    ClipBoard_Close,
    ClipBoard_GetData,
    ClipBoard_SetData,
    ClipBoard_GetDataCount,
    ClipBoard_ClearData,
    ClipBoard_ExistFormat,
    ClipBoard_EnumFormat,
    ClipBoard_GetPriorityFormat,
    ClipBoard_GetUpdateFormat,
    ClipBoard_GetSequence,
}ClipBoardType;

typedef struct __CLIPBOARD_GETDATA_REQ
{
    unsigned int Format;
}CLIPBOARD_GETDATA_REQ, *PCLIPBOARD_GETDATA_REQ;

typedef struct __CLIPBOARD_GETDATA_RPL
{
    unsigned int Format;
    unsigned int Sequence;
    unsigned int DataLenght;
    unsigned char Data[0];
}CLIPBOARD_GETDATA_RPL, *PCLIPBOARD_GETDATA_RPL;

typedef struct __CLIPBOARD_SETDATA_REQ
{
    int GlobalHandle;
    int IncSerialNumber;
    unsigned int SequenceCount;
    unsigned int Format;
    unsigned int DataLenght;
    unsigned char Data[0];
}CLIPBOARD_SETDATA_REQ, * PCLIPBOARD_SETDATA_REQ;

typedef struct __CLIPBOARD_GET_DATACOUNT_RPL
{
    unsigned int Count;
}CLIPBOARD_GET_DATACOUNT_RPL, * PCLIPBOARD_GET_DATACOUNT_RPL;

typedef struct __CLIPBOARD_EXIST_FORMAT_REQ
{
    unsigned int Format;
}CLIPBOARD_EXIST_FORMAT_REQ, * PCLIPBOARD_EXIST_FORMAT_REQ;

typedef struct __CLIPBOARD_ENUM_FORMAT_REQ
{
    unsigned int Format;
}CLIPBOARD_ENUM_FORMAT_REQ, * PCLIPBOARD_ENUM_FORMAT_REQ;

typedef struct __CLIPBOARD_ENUM_FORMAT_RPL
{
    unsigned int Format;
}CLIPBOARD_ENUM_FORMAT_RPL, * PCLIPBOARD_ENUM_FORMAT_RPL;

typedef struct __CLIPBOARD_GET_SEQUENCE_RPL
{
    unsigned int Sequence;
}CLIPBOARD_GET_SEQUENCE_RPL, * PCLIPBOARD_GET_SEQUENCE_RPL;

typedef struct __CLIPBOARD_GET_PRIORITY_FORMAT_REQ
{
    unsigned int Count;
    unsigned int Formats[0];
}CLIPBOARD_GET_PRIORITY_FORMAT_REQ, * PCLIPBOARD_GET_PRIORITY_FORMAT_REQ;

typedef struct __CLIPBOARD_GET_PRIORITY_FORMAT_RPL
{
    unsigned int Index;
}CLIPBOARD_GET_PRIORITY_FORMAT_RPL, * PCLIPBOARD_GET_PRIORITY_FORMAT_RPL;

typedef struct __CLIPBOARD_UPDATE_FORMAT_REQ
{
    unsigned int Sequence;
    unsigned int Count;
}CLIPBOARD_UPDATE_FORMAT_REQ, * PCLIPBOARD_UPDATE_FORMAT_REQ;

typedef struct __CLIPBOARD_UPDATE_FORMAT_RPL
{
    unsigned int Sequence;
    unsigned int Count;
    unsigned int Formats[0];
}CLIPBOARD_UPDATE_FORMAT_RPL, * PCLIPBOARD_UPDATE_FORMAT_RPL;

#endif